﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

//importamos
using EventSys.BussinesEntities;

namespace EventSys.Repository
{
    public class AmbienteRepository :MasterRepository,IAmbienteRepository
    {
        public List<Ambiente> GetFromAllAmbiente()//string criterio)
        {
            var ambiente = Context.Ambientes.Include("Ubicacion").ToList();

            //if (criterio != "")
            //{
            //    ambiente = (ambiente.Where(
            //                                 t => t.Descripcion.ToUpper().Contains(criterio.ToUpper())
                                                                                          
            //                                )
            //                 ).ToList();
            //}

            return ambiente;
        }

        public List<Ambiente> GetFromAllAmbienteByCriterio(string criterio)
        {
            var query = from a in Context.Ambientes
                        select a;

            if (criterio != null || criterio!="")
            {
                query = query.Where(t => t.Descripcion.ToUpper().Contains(criterio.ToUpper())
                                    );
            }

            return query.OrderBy(t => t.Descripcion).Skip(0).Take(10).ToList();
        }
        public void RegistrarAmbiente(BussinesEntities.Ambiente ambiente)
        {
            //var existe = Context.Ambientes.Where(a => a.Descripcion.Equals(ambiente.Descripcion)).SingleOrDefault();
            Context.Ambientes.Add(ambiente);
            Context.SaveChanges();
            //if (existe == null)
            
            //{
               
            //    throw new Exception("AMBIENTE REGISTRADO CORRECTAMENTE (*_*)");
            //}
            //else
            //{
            //    throw new Exception("El AMBIENTE YA ESTA REGISTRADO (-_-)");
            //}
        }

        public Ambiente AmbienteById(int id)
        {
            var ambiente = Context.Ambientes.Find(id);
            return ambiente;
        }

        public void EditarAmbiente(Ambiente ambiente)
        {
            Context.Entry(ambiente).State = System.Data.EntityState.Modified;
            Context.SaveChanges();
           
        }

        public void EliminarAmbiente(int id)
        {
             var existe = Context.Ambientes.Find(id);

            if (existe != null)
            {
                Context.Ambientes.Remove(existe);
                Context.SaveChanges();
            
        }
        }

        //public List<BussinesEntities.Ambiente> GetFromAllAmbiente(string criterio)
        //{
        //    throw new NotImplementedException();
        //}

        public List<Ubicacion> GetFromAllUbicacion()
        {
            var lista = Context.Ubicacions.ToList();
            return lista;
        }
    }
}
